package com.gack.business.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.gack.business.service.UserServiceInterface;
import com.gack.helper.common.AjaxJson;
import com.gack.helper.common.abstractobj.ApiController;

import io.swagger.annotations.ApiOperation;

/**
 * 
* @ClassName: UserController 
* @Description: TODO(这里用一句话描述这个类的作用) 
* @author (ZhangXinYu)  
* @date 2018年6月19日 下午2:25:24 
* @version V1.0
 */
@RestController
@RequestMapping(ApiController.USER_URL)
public class UserController {

	@Autowired
	private UserServiceInterface userService;
	
	
	@ApiOperation(value="用户列表",notes="用户列表")
	@PostMapping("getUsers")
	/**
	 * 
	* @Title: getUsers 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param startTime	开始时间
	* @param @param endTime		结束时间
	* @param @param minAmount	最小消费金额
	* @param @param maxAmount	最大消费金额
	* @param @param searchType	查询类型  0 无条件查询 1昵称查询 2订单号查询
	* @param @param keyWord		查询关键词
	* @param @return    入参		
	* @return AjaxJson    返回类型
	* @author （ZhangXinYu） 
	* @throws
	* @date 2018年6月19日 下午2:37:02 
	* @version V1.0
	 */
	public AjaxJson getUsers(String startTime,String endTime,Integer minAmount,Integer maxAmount,Integer searchType,String keyWord,
			Integer page,Integer size){
		AjaxJson ajaxJson = new AjaxJson();
		try{
			ajaxJson.setStatus(200).setSuccess(true).setData(userService.getUsers(startTime, endTime, minAmount, maxAmount, searchType, keyWord, page, size));
		}catch (Exception e) {
			e.printStackTrace();
			ajaxJson.setStatus(500).setSuccess(false).setMsg("操作失败");
		}
		return ajaxJson;
	}
	
	@ApiOperation(value="导出数据查询",notes="导出数据查询")
	@PostMapping("getExportUsers")
	public AjaxJson getUsers(String startTime,String endTime,Integer minAmount,Integer maxAmount,Integer searchType,String keyWord){
		AjaxJson ajaxJson = new AjaxJson();
		try{
			ajaxJson.setStatus(200).setSuccess(true).setData(userService.getExportUsers(startTime, endTime, minAmount, maxAmount, searchType, keyWord));
		}catch (Exception e) {
			e.printStackTrace();
			ajaxJson.setStatus(500).setSuccess(false).setMsg("操作失败");
		}
		return ajaxJson;
	}
	
	/**
	 * 
	* @Title: updateUserStatus 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @param userid
	* @param @param status	0:冻结 1:活动
	* @param @return    入参
	* @return AjaxJson    返回类型
	* @author （ZhangXinYu） 
	* @throws
	* @date 2018年6月19日 下午4:47:10 
	* @version V1.0
	 */
	@ApiOperation(value="冻结/解冻账户",notes="冻结/解冻账户")
	@PostMapping("updateUserStatus")
	public AjaxJson updateUserStatus(String backuserid,String userid,Integer status){
		AjaxJson ajaxJson = new AjaxJson();
		try{
			ajaxJson.setStatus(200).setSuccess(true).setData(userService.updateUserStatus(backuserid,userid, status));
		}catch (Exception e) {
			e.printStackTrace();
			ajaxJson.setStatus(500).setSuccess(false).setMsg("操作失败");
		}
		return ajaxJson;
	}
	
	@ApiOperation(value="获取用户详情",notes="获取用户详情")
	@PostMapping("getUserInfo")
	public AjaxJson getUserInfo(String userid){
		AjaxJson ajaxJson = new AjaxJson();
		try{
			ajaxJson.setStatus(200).setSuccess(true).setData(userService.getUserInfo(userid));
		}catch (Exception e) {
			e.printStackTrace();
			ajaxJson.setStatus(500).setSuccess(false).setMsg("操作失败");
		}
		return ajaxJson;
	}
}
